package Day_0224.SpringAnnotation;

/**
 * @author zxc
 * @date 2023/02/24 21:40
 **/
public class Spring_Transaction_Communication_Behavior {
    public static void main(String[] args) {
        /**
         * Spring中的事务传播行为
         * ===》
         * 1.spring事务的传播行为说的是，
         * 当多个事务同时存在的时候，spring如何处理这些事务的行为。
         *
         * 2.Spring中，当多个事务同时存在时，对于这些事务的处理
         * ① PROPAGATION_REQUIRED ：
         * （1）如果当前没有事务，就创建一个新事务;
         * （2）如果当前存在事务，就加入该事务，
         * 该设置是最常用的设置。
         *
         * ② PROPAGATION_SUPPORTS：
         * （1）支持当前事务，如果当前存在事务，就加入该事务;
         * （2）如果当前不存在事务，就以非事务执行。
         *
         * ③ PROPAGATION_MANDATORY：
         * （1）支持当前事务，如果当前存在事务，就加入该事务，
         * （2）如果当前不存在事务，就抛出异常。
         *
         * ④ PROPAGATION_REQUIRES_NEW：
         * ===》
         * 创建新事务，无论当前存不存在事务，都创建新事务。
         *
         * ⑤ PROPAGATION_NOT_SUPPORTED：
         * ===》
         * 以非事务方式执行操作，如果当前存在事务，就把当前事务挂起。
         *
         * ⑥ PROPAGATION_NEVER：
         * ===》
         * 以非事务方式执行，如果当前存在事务，则抛出异常。
         *
         * ⑦ PROPAGATION_NESTED：
         * 如果当前存在事务，则在嵌套事务内执行。
         * 如果当前没有事务，则按REQUIRED属性执行。
         *
         *
         */
    }
}
